﻿using SelfMadeMillionaire.Core.Entities;
using SelfMadeMillionaire.Core.Enums;
using SelfMadeMillionaire.Core.Specifications;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SelfMadeMillionaire.Core.Services
{
	public interface INewsletterService
	{
		Newsletter Add(Newsletter publication);
		Newsletter Update(Newsletter publication);
		Newsletter Get(int id);
        IEnumerable<Newsletter> GetList(DateTime? startDate, DateTime? endDate, ProductType? product, byte? issueType, string symbols, string title, byte? minAccessLevel, byte? minAccessLevelAdmin, bool isAdmin);
		IEnumerable<Newsletter> GetList(ISearchSpecification<Newsletter> specification);
        IEnumerable<Newsletter> GetMmmRecentIssues();
		void Remove(int id);
        void Hide(int id);
        void Show(int id);
		void Send(int id, string emailTemplate);
		IEnumerable<IssueType> GetIssueTypes();
	}
}
